Modern electronic devices come in many fauns. Personal modern electronic devices include smart watches, mobile phones, and notebook computers. Modern electronic devices deployed by corporations include server machines that power large data centers and cloud computing services, and computing technology that is embedded in other devices, such as vehicles and manufacturing equipment. Each of these kinds of electronic devices play an important role in modern life. For example, electronic devices provide navigational directions, control manufacturing robots, stream movies and news, and provide access to both web pages and emails.
What each of these electronic devices have in common is some kind of processor, as well as some level of power consumption. Processors operate as the brains of electronic devices by implementing functionality that has been encoded into a program that can be executed by a processor. This program execution consumes power. Accordingly, efforts have been made to reduce the power consumed by electronic devices when executing programs. When power consumption is reduced, money is saved and the earth's resources are conserved. Furthermore, battery-powered electronic devices last longer between charges and can be made smaller as battery sizes are reduced.
To execute a program and thereby provide some functionality, a processor uses a supply voltage to power the performance of computing operations. These operations are performed at a rate that is dependent on a frequency of a clock signal. Generally, the higher the supply voltage and the higher the clock signal, the faster the processor can perform operations and perform functions. However, the higher the supply voltage and the higher the clock signal, the more power the processor consumes.
One approach to reducing power consumption is to lower a voltage level of a supply voltage or a frequency level of a clock signal. This is referred to as dynamic voltage and frequency scaling (DVFS). Software, such as that of an operating system (OS), requests that a voltage level or a frequency level be adjusted based on a current workload, which can be an application that is being executed by the operating system. With conventional DVFS, the software monitors an intensity of a computational workload as well as the corresponding performance level provided by a processor. If the performance level provided by the processor is insufficient to meet the demands of the current workload, the software issues a request to the underlying hardware to increase the voltage and frequency levels. On the other hand, if the current workload demands are easily met by the processor's performance level, the software can request a decrease to the voltage level and the frequency level to reduce power consumption by the electronic device.
Unfortunately, employing conventional DVFS is a complicated undertaking. Consequently, conventional DVFS implementations are resource intensive and cannot respond to operating state changes in a timely manner.